home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 February: Tool Chest / Dev.CD Feb 95 / Dev.CD Feb 95.toast / Sample Code / Snippets / Processes / Process / proc.c next >
Encoding:
C/C++ Source or Header  |  1992-07-15  |  2.3 KB  |  74 lines  |  [TEXT/MPS ]

  1. /*
  2. ** James "im" Beninghaus
  3. */
  4.  
  5.  
  6. #include    <Errors.h>
  7. #include    <OSUtils.h>
  8. #include    <Processes.h>
  9. #include    <stdio.h>
  10.  
  11. main () {
  12.     
  13.     auto    OSErr                osErr            = noErr;
  14.     auto    ProcessSerialNumber    process;
  15.     auto    ProcessInfoRec        procInfo;
  16.     auto    Str255                fileName,
  17.                                 procName;
  18.     auto    DateTimeRec            launchDateTime;            
  19.  
  20.     InitGraf((Ptr) &qd.thePort);
  21.     
  22.     
  23.     printf(
  24.         "         Process Name                 Number        Type  Signature      Mode   Location   Size   FreeMem      Launcher         LaunchDate        ActiveTime  FileDirID VRefNum  FileName                        "                        
  25.         "\n"
  26.         "-------------------------------- -----------------  ----    ----       -------- -------- -------- -------- ----------------- -------------------   --------   --------  ----     --------------------------------"
  27.         "\n"
  28.     );
  29.     
  30.     process.HighLongOfPSN = kNoProcess;
  31.     process.LowLongOfPSN  = kNoProcess;
  32.     
  33.     procInfo.processInfoLength    = sizeof(procInfo);
  34.     procInfo.processName        = procName;
  35.     procInfo.processFileName    = fileName;
  36.  
  37.     while (procNotFound != (osErr = GetNextProcess(&process))) {
  38.         if (noErr == (osErr = GetProcessInformation(&process, &procInfo))) {
  39.             if ('\0' == procName[1])
  40.                 procName[1] = '0';
  41.             Secs2Date(procInfo.processLaunchDate, &launchDateTime);
  42.             printf(
  43.                 "%-32P %08lx.%08lx '%c%c%c%c'  '%c%c%c%c'      %08lx %08lx %08lx %08lx %08lx.%08lx %2d/%2d/%2d %2d:%02d:%02d   %08lx   %08lx  %04x     %P\n",
  44.                 procInfo.processName,
  45.                 procInfo.processNumber.HighLongOfPSN,
  46.                 procInfo.processNumber.LowLongOfPSN,
  47.                 ((char *) &procInfo.processType)[0],
  48.                 ((char *) &procInfo.processType)[1],
  49.                 ((char *) &procInfo.processType)[2],
  50.                 ((char *) &procInfo.processType)[3],
  51.                 ((char *) &procInfo.processSignature)[0],
  52.                 ((char *) &procInfo.processSignature)[1],
  53.                 ((char *) &procInfo.processSignature)[2],
  54.                 ((char *) &procInfo.processSignature)[3],
  55.                 procInfo.processMode,
  56.                 procInfo.processLocation,
  57.                 procInfo.processSize,
  58.                 procInfo.processFreeMem,
  59.                 procInfo.processLauncher.HighLongOfPSN,
  60.                 procInfo.processLauncher.LowLongOfPSN,
  61.                 launchDateTime.month,
  62.                 launchDateTime.day,
  63.                 launchDateTime.year,
  64.                 launchDateTime.hour,
  65.                 launchDateTime.minute,
  66.                 launchDateTime.second,
  67.                 procInfo.processActiveTime,
  68.                 procInfo.processFileDirID,
  69.                 procInfo.processFileVRefNum,
  70.                 procInfo.processFileName
  71.             );
  72.         }
  73.     }
  74. }